﻿// -- MVC4WPF
// -- Copyright © 2009 Information Control Corporation
// -- Revision History:
// -- Version 0.9.0.0 First codeplex release  - Stephen Giffin

using System;
using System.ComponentModel;
using System.Windows.Threading;
namespace MVC4WPF
{
    /// <summary>
    /// Base view contract that all wpf views are based on. This contains the core events and properties that are required on all WPF based views.
    /// </summary>
    public interface IWPFView : INotifyPropertyChanged, INotifyPropertyChanging
    {
        /// <summary>
        /// The thread dispatcher that handles request for this view. 
        /// </summary>
        Dispatcher ViewDispatcher { get; }

        /// <summary>
        /// External view initilizer that is called after the view has been initilized. 
        /// This is generally used when depedancy objects are loaded after initilization, or
        /// You want to reset the view to a configured default.
        /// </summary>
        void ConfigureView();
    }
}
